import { request, apiUrl } from '@/api/request';

/**
 * 推荐歌单
 * 说明 : 调用此接口 , 可获取推荐歌单
 * 可选参数 : limit: 取出数量 , 默认为 30 (不支持 offset)
 * 接口地址：'/personalized'
 */
// type PlayList = {
//   limit?: number;
// };
export function getPlayList(params) {
  return request(apiUrl.PERSONALIZED, params);
}

/**
 * 歌单分类
 * 说明 : 调用此接口,可获取歌单分类,包含 category 信息
 * 接口地址：'/playlist/catlist'
 */
export function getPlayListCatList() {
  return request(apiUrl.PLAYLIST_CATLIST);
}

/**
 * 热门歌单分类
 * 说明 : 调用此接口,可获取歌单分类,包含 category 信息
 * 接口地址：'/playlist/hot'
 */
export function getPlayListHot() {
  return request(apiUrl.PLAYLIST_HOT);
}

/**
 * 歌单 ( 网友精选碟 )
 * 说明 : 调用此接口 , 可获取网友精选碟歌单
 * 可选参数 :
 * order: 可选值为 'new' 和 'hot', 分别对应最新和最热 , 默认为 'hot'
 * cat: tag, 比如 " 华语 "、" 古风 " 、" 欧美 "、" 流行 ", 默认为 "全部",
 * 可从歌单分类接口获取(/playlist/catlist)
 * limit: 取出歌单数量 , 默认为 50
 * offset: 偏移数量 , 用于分页 , 如 :( 评论页数 -1)*50, 其中 50 为 limit 的值
 * 接口地址：'/top/playlist'
 */
// type TopPlayList = {
//   order?: string;
//   cat?: string;
//   limit?: number;
//   offset?: number;
// };
export function getTopPlayList(params) {
  return request(apiUrl.TOP_PLAYLIST, params);
}

/**
 * 精品歌单标签列表
 * 说明 : 调用此接口 , 可获取精品歌单标签列表
 * 接口地址：'/playlist/highquality/tags'
 */
export function getPlayListHighqualityTags() {
  return request(apiUrl.PLAYLIST_HIGHQUALITY_TAGS);
}

/**
 * 获取精品歌单
 * 说明 : 调用此接口 , 可获取精品歌单
 * 可选参数:
 * cat: tag, 比如 " 华语 "、" 古风 " 、" 欧美 "、" 流行 ", 默认为 "全部",可从精品歌单标签列表接口获取(/playlist/highquality/tags)
 * limit: 取出歌单数量 , 默认为 20
 * before: 分页参数,取上一页最后一个歌单的 updateTime 获取下一页数据
 * 接口地址：'/top/playlist/highquality'
 */
// type TopPlayListHighquality = {
//   cat?: string;
//   limit?: number;
//   before?: string;
// };
export function getTopPlayListHighquality(params) {
  return request(apiUrl.TOP_PLAYLIST_HIGHQUALITY, params);
}

/**
 * 相关歌单推荐
 * 说明 : 调用此接口,传入歌单 id 可获取相关歌单
 * 必选参数:
 * id : 歌单 id
 * 接口地址：/related/playlist
 */
export function getRelatedPlayList(id) {
  return request(`${apiUrl.RELATED_PLAYLIST}?id=${id}`);
}

/**
 * 获取歌单详情
 * 说明 : 歌单能看到歌单名字, 但看不到具体歌单内容 , 调用此接口 , 传入歌单 id,
 * 可 以获取对应歌单内的所有的音乐(未登录状态只能获取不完整的歌单,登录后是完整的)，
 * 但是返回的 trackIds 是完整的，tracks 则是不完整的，
 * 可拿全部 trackIds 请求一次 song/detail 接口获取所有歌曲的详情
 * 必选参数 : id : 歌单 id
 * 可选参数 : s : 歌单最近的 s 个收藏者,默认为 8
 * 接口地址：'/playlist/detail'
 */
// type PlayListDetail = {
//   id: string | number;
//   s?: string;
// };
export function getPlayListDetail(params) {
  return request(apiUrl.PLAYLIST_DETAIL, params);
}

/**
 * 歌单详情动态
 * 说明 : 调用后可获取歌单详情动态部分,如评论数,是否收藏,播放数
 * 必选参数 : id : 歌单 id
 * 接口地址：/playlist/detail/dynamic
 */
export function getPlayListDetailDynamic(id) {
  return request(`${apiUrl.PLAYLIST_DETAIL_DYNAMIC}?${id}`);
}
